home *** CD-ROM | disk | FTP | other *** search
- /***************************************************************************/
- /* */
- /* Modul: WINDOWS.H */
- /* */
- /***************************************************************************/
- #ifndef _qed_windows_h_
- #define _qed_windows_h_
-
-
- /****** DEFINES ************************************************************/
-
- #define DESK 0
- #define CLASS_EDIT 2
- #define CLASS_CLIP 3
- #define CLASS_PROJEKT 4
- #define CLASS_TRASH 5
- #define CLASS_DIALOG 6
- #define CLASS_ICON 7 /* Iconify */
-
- #define WI_NONE 0x0000 /* Keine Flags */
- #define WI_FULLED 0x0001 /* Fenster auf voller Grö₧e */
- #define WI_MAIN_MENU 0x0002 /* Menü dieses Fensters ist nicht im Fenster */
- #define WI_TEXT 0x0004 /* Fenster enthält Text mit TAB und CR */
- #define WI_MOUSE 0x0008 /* Eigene Mausform */
- #define WI_NOTDRAWED 0x0020 /* Eine redraw-Msg wird geschluckt */
- #define WI_FONTSIZE 0x0040 /* Bei Fontänderung Grö₧enanpassung */
- #define WI_REDRAW 0x0080 /* Fenster ganz redrawen bei size */
- #define WI_MODAL 0x0100 /* Flag für "Modales Dialog-Fenster" */
- #define WI_MODELESS 0x0200 /* Flag für "Nicht-Modales Dialog-Fenster" */
- #define WI_ICONIFIED 0x0400 /* Fenster ist Icon */
-
- /* Aktionen auf Icons */
-
- #define DO_UNDO 0
- #define DO_CUT 1
- #define DO_COPY 2
- #define DO_PASTE 3
- #define DO_CLEAR 4 /* Objekt säubern */
- #define DO_SELALL 5
- #define DO_CLOSE 6 /* alle Fenster zum Object schlie₧en */
- #define DO_DESTRUCT 7 /* wie DO_CLOSE, nur auch Fenster und Objekt löschen */
- #define DO_OPEN 8 /* ein Fenster öffnen */
- #define DO_INFO 9
- #define DO_HELP 10
- #define DO_LEFT 11
- #define DO_RIGHT 12
- #define DO_FORMAT 13
- #define DO_PRINT 14
- #define DO_ABAND 15
- #define DO_SAVE 16
- #define DO_SAVENEW 17
- #define DO_FIND 18
- #define DO_FINDNEXT 19
- #define DO_ADD 20 /* Text hinzuladen, Projekt erweitern */
- #define DO_unused2 21
- #define DO_GOTO 22
- #define DO_CUTLINES 23
- #define DO_INIT 24
- #define DO_REINIT 25
- #define DO_TAB2LZ 26
- #define DO_UPDATE 27 /* Projekt: Datei geladen?, Text: auf Platte geändert? */
- #define DO_LZ2TAB 28
- #define DO_LINECOPY 29
- #define DO_ZEICHTAB 30
- #define DO_SWAPCHAR 31
- #define DO_ONE_LEFT 32 /* nur ein Zeichen Shiften */
- #define DO_ONE_RIGHT 33
- #define DO_BIG2SMALL 34 /* alles klein */
- #define DO_SMALL2BIG 35 /* alles gro₧ */
- #define DO_CHNG_SMBG 36 /* gro₧ <> klein */
- #define DO_CAPS 37 /* Kapitälchen */
- #define DO_GO_BLK_A 38 /* zum Blockende */
- #define DO_GO_BLK_E 39 /* zum Blockende */
- #define DO_UMLAUT 40
- #define DO_AUTOSAVE 41
- #define DO_FEHLER 42
-
- #define DO_ANZ 43 /* bei Änderung menu_nr[MENU] anpassen */
-
- #define SRCH_CLOSED 0x01 /* Search-Code für geschlossene Fenster */
- #define SRCH_OPENED 0x02 /* Search-Code für geöffnete Fenster */
- #define SRCH_ANY (SRCH_CLOSED | SRCH_OPENED) /* Search-Code für jedes Fenster */
-
- #define HORIZONTAL 0x01 /* Für Scrolling... */
- #define VERTICAL 0x02 /* ...und Schieber setzen */
-
- #define SLPOS 0x01 /* Für Schieber setzen */
- #define SLSIZE 0x02
-
- /****** TYPES ****************************************************************/
-
- #define WINDP struct window*
-
- /* Länge der Strings in Titel und Info */
- #define WINSTRLEN 256
-
- typedef struct window
- {
- WORD link;
- WORD age;
- WINDP next;
- WORD handle; /* Handle für Fenster */
- WORD opened; /* Wie oft wurde Fenster geöffnet ? */
- WORD flags; /* Flags des Fensters */
- WORD kind; /* Art des Fensters */
- WORD class; /* Klasse des Fensters */
- LRECT doc; /* Position und Grö₧e des Dokumentes */
- WORD xfac; /* X-Factor des Dokumentes */
- WORD yfac; /* Y-Factor des Dokumentes */
- WORD w_width; /* Fensterbreite in Einheiten */
- WORD w_hight; /* Fensterhöhe in Einheiten */
- RECT work; /* Arbeitsbereich */
- WORD icon_x, icon_y; /* Position des Icons zum Fenster */
- WORD mousenum; /* Nummer der Mausform */
- BOOLEAN changed; /* Fenstertitel mit '*' */
- UBYTE name[WINSTRLEN]; /* Name des Fensters */
- UBYTE titel[WINSTRLEN]; /* Titel des Fensters (mit ' ' und '*') */
- UBYTE info[WINSTRLEN]; /* Infozeile des Fensters */
- OBJECT *icon; /* Objektbaum für Iconify */
- WORD ix, iy; /* Position des Icons */
- RECT old_size; /* Absolute Grö₧e vor dem Iconify */
- VOID *special; /* z.b.V. */
- WORD slider_pos;
- WORD init; /* benutzt für Datei in QED-Datei */
- /* Zeichnen-Aktion */
- VOID (*draw) (WINDP window, CONST RECT *d);
- /* Schnapp-Aktion */
- VOID (*snap) (WINDP window, RECT *new, WORD mode);
- /* Klick-Aktion (selektieren) */
- VOID (*click) (WINDP window, MKINFO *mk);
- /* Klick-Aktion (deselektieren) */
- VOID (*unclick) (WINDP window);
- /* Tastatur-Aktion */
- BOOLEAN (*key) (WINDP window, MKINFO *mk);
- /* Fenster-Aktionen */
- VOID (*top) (WINDP window);
- VOID (*ontop) (WINDP window);
- VOID (*untop) (WINDP window);
- VOID (*bottom) (WINDP window);
- VOID (*close) (WINDP window);
- /* Iconify */
- VOID (*iconify) (WINDP window);
- VOID (*uniconify) (WINDP window);
- } WINDOW;
-
- #undef WINDP;
-
- typedef WINDOW *WINDOWP;
- typedef WINDOW *WINDP;
-
- /****** VARIABLES ************************************************************/
-
- EXTERN WINDP sel_window; /* Zeiger auf selektiertes Fenster */
- EXTERN SET sel_objs; /* Menge selektierter Objekte */
- EXTERN BOOLEAN all_iconified; /* sind wir komplett iconified?? */
-
- /****** FUNCTIONS ************************************************************/
-
- VOID add_windinfo (WORD class, RECT *r, WORD icon_x, WORD icon_y, WORD init);
- BOOLEAN get_windinfo (WORD *last, WORD *class, RECT *r, WORD *icon_x, WORD *icon_y, WORD *used);
-
- BOOLEAN rc_first (WORD wh, CONST RECT *b, RECT *r);
- BOOLEAN rc_next (WORD wh, RECT *r);
-
- WINDP get_window (WORD link);
- WINDP find_window (WORD wh);
- WINDP top (VOID);
- VOID get_realtop (VOID);
- WINDP real_top (VOID);
- BOOLEAN free_for_draw (WINDP window);
- WORD num_windows (WORD class, WORD mode);
- VOID get_all_windows (WORD class, WORD mode, VOID (*doit)(WINDP winndow));
-
- WINDP create_window (WORD kind, WORD class, WORD link, VOID (*crt)(WORD link, WINDP window));
- BOOLEAN open_window (WINDP window);
- VOID close_window (WINDP window);
- VOID destruct_window (WINDP window);
- VOID redraw_window (WINDP window, CONST RECT *area);
- VOID cycle_window (VOID);
- VOID clearup_windows (WORD mode, WORD w, WORD h);
- VOID top_window (WINDP window);
- VOID ontop_window (WINDP window);
- VOID untop_window (WINDP window);
- VOID bottom_window (WINDP window, WORD msg);
- VOID scroll_window (WINDP window, WORD dir, LONG delta);
- VOID arrow_window (WINDP window, WORD arrow, long amount);
- VOID h_slider (WINDP window, WORD new_value);
- VOID v_slider (WINDP window, WORD new_value);
- VOID set_sliders (WINDP window, WORD which, WORD mode);
- VOID set_wname (WINDP window, CONST UBYTE *name);
- VOID set_winfo (WINDP window, CONST UBYTE *info);
- VOID change_window (WINDP window, BOOLEAN changed);
- VOID full_window (WINDP window);
- VOID size_window (WINDP window, CONST RECT *new, BOOLEAN border);
- VOID move_window (WINDP window, CONST RECT *new);
- VOID iconify_window (WINDP window, CONST RECT *new, BOOLEAN flag);
- VOID uniconify_window (WINDP window, CONST RECT *new);
- VOID alliconify (CONST RECT *new);
- VOID click_window (WINDP window, MKINFO *mk);
- VOID unclick_window (VOID);
- BOOLEAN key_window (WINDP window, MKINFO *mk);
- VOID do_font_change (WINDP window);
-
- VOID scroll_vertical (const RECT *area, WORD delta);
- VOID clr_area (const RECT *area);
-
- VOID init_windows (VOID);
-
- #endif
-